package com.gshrms.recruitment.entity;

import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotEmpty;

/**
 * <p>
 * 应聘者信息表
 * </p>
 *
 * @author xj
 * @since 2025-04-01
 */
@Getter
@Setter
@TableName("recruitment_applicants")
@ApiModel(value = "RecruitmentApplicants对象", description = "应聘者信息表")
public class RecruitmentApplicants implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("主键id")
    private String id;

    @ApiModelProperty("应聘端关联用户id")
    private Long applyUserId;

    @ApiModelProperty("招聘计划id")
    private String recruitmentInfoId;

    @ApiModelProperty("招聘计划名称")
    private String recruitmentInfoName;

    @ApiModelProperty("招聘职位Id")
    private String recruitmentPositionId;

    @ApiModelProperty("招聘岗位名称")
    private String recruitmentPositionName;

    @ApiModelProperty("应聘者姓名")
    private String applicantName;

    @ApiModelProperty("面试轮次")
    private Integer interviewRound;

    @ApiModelProperty("是否接受调剂")
    private String isAdjustment;

    @ApiModelProperty("目前状态")
    private String currentStatus;

    @ApiModelProperty("来源渠道：内推、官网")
    private String channel;

    @ApiModelProperty("内推人id")
    private String referrerId;

    @ApiModelProperty("内推人姓名")
    private String referrerName;

    @ApiModelProperty("投递时间")
    private Date submitTime;

    @ApiModelProperty("工作年限")
    private String workDuration;

    @ApiModelProperty("照片")
    private String photo;

    @ApiModelProperty("性别")
    private String gender;

    @ApiModelProperty("身份证号")
    private String idCard;

    @ApiModelProperty("出生日期")
    private String birthday;

    @ApiModelProperty("手机号")
    private String mobile;

    @ApiModelProperty("邮箱")
    private String email;

    @ApiModelProperty("最高学历")
    private String maxEducation;

    @ApiModelProperty("专业")
    private String major;

    @ApiModelProperty("籍贯")
    private String nativePlace;

    @ApiModelProperty("通讯地址省市区")
    private String address;


    @ApiModelProperty("通讯地址详细地址")
    private String addressDetailed;

    @ApiModelProperty("民族")
    private String nation;

    @ApiModelProperty("政治面貌")
    private String politicalStatus;

    @ApiModelProperty("婚姻状况")
    private String maritalStatus;

    @ApiModelProperty("最低期望工资")
    private BigDecimal expectedMinSalary;

    @ApiModelProperty("最高期望工资")
    private BigDecimal expectedMaxSalary;

    @ApiModelProperty("正面彩色照片（jpg格式）")
    private String frontPhoto;

    @ApiModelProperty("紧急联系人")
    @NotEmpty(message = "请输入紧急联系人")
    private String contacts;

    @ApiModelProperty("与应聘者关系")
    @NotEmpty(message = "请输入与应聘者关系")
    private String contactsRelationship;

    @ApiModelProperty("紧急联系人手机号")
    @NotEmpty(message = "请输入紧急联系人手机号")
    private String contactsPhone;

    @ApiModelProperty("身份证正反面图片地址")
    private String idCardImage;

    @ApiModelProperty("子表数据")
    private String tableJson;

    @ApiModelProperty("附件名称")
    private String attachmentName;

    @ApiModelProperty("附件地址")
    private String attachmentAddress;

    @ApiModelProperty("签名图片地址")
    private String signImage;

    @ApiModelProperty("体检报告")
    private String examinationReport;

    @ApiModelProperty("流程节点 	1新增应聘  	2初筛通过	3能力测评	4安排复试	5考察	6体检	7录用通知	8待入职	9淘汰			")
    private String interviewPhase;

    @ApiModelProperty("通过状态")
    private String passStatus;

    @ApiModelProperty("不通过原因")
    private String passReason;

    @ApiModelProperty("淘汰原因")
    private String eliminateReason;

    @ApiModelProperty("淘汰备注")
    private String eliminateRemark;

    @ApiModelProperty("创建人id")
    private Long createId;

    @ApiModelProperty("创建人")
    private String createName;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("更新时间")
    private Date updateTime;

    @ApiModelProperty("参加工作日期")
    private String employmentDate;

    @ApiModelProperty("加入时间")
    private Date addTime;
}
